﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Collections;
using Ecopsy.DataTier;
using AgencyEntityLib.BaseEntity;
using System.Web.UI.WebControls;
using System.Reflection;


namespace Ecopsy.Tools
{        
    public static class TreeNodeExt
    {
        


        /// <summary>
        /// Собрать  ноды помеченные чекбоксом в список 
        /// Движение от корня
        /// </summary>
        /// <param name="TNode"></param>
        /// <returns></returns>
        public static List<TreeNode> ChBoxToList(this TreeNode TNode)
        {
            List<TreeNode> List = new List<TreeNode> ();
            Func<TreeNode, List<TreeNode> > f = delegate(TreeNode nd)
            {
                if (nd.Checked) List.Add(nd);
                return List;
            };

            FindNext_ChBoxToList(TNode, f);
            return List ;
        }

        private static void FindNext_ChBoxToList(TreeNode nd, Func<TreeNode, List<TreeNode> > f )
        {
            f(nd);
            foreach (TreeNode item in nd.ChildNodes )
            {
                FindNext_ChBoxToList(item,f);
            }         
        }


      
                
    }

}


